An Incremental Approach to Compiler Construction